package com.saver.core.processor.async;

import java.io.IOException;
import java.util.List;

import android.os.AsyncTask;
import android.util.Log;

import com.saver.core.business.TransaccionBusiness;
import com.saver.core.domain.Banco;
import com.saver.core.exception.HTTPException;
import com.saver.core.processor.ProcessSMSFactory;

public class GUIProcesadorSMS extends AsyncTask<Void, Void, Void> {
	
	private static final String TAG = "GUIProcesadorSMS";
	
	private TransaccionBusiness transaccionBusiness;
	private ProcessSMSFactory processSMSFactory;
	private List<Banco> bancos;
	private CompletoProcesoSMS completoProcesoSMS;
	private Short revisado;
	
	public GUIProcesadorSMS(TransaccionBusiness transaccionBusiness, 
			ProcessSMSFactory processSMSFactory, List<Banco> bancos, 
			CompletoProcesoSMS completoProcesoSMS, Short revisado) {
		
		this.transaccionBusiness = transaccionBusiness;
		this.bancos = bancos;
		this.processSMSFactory = processSMSFactory;
		this.completoProcesoSMS = completoProcesoSMS;
		this.revisado = revisado;
	}

	@Override
	protected Void doInBackground(Void... params) {
		try {
            Object object = transaccionBusiness.migrarABaseDatos(bancos, processSMSFactory, revisado);
			completoProcesoSMS.completo(object);
		} catch (IOException e) {
			Log.e(TAG, "Error al obtener datos del servicio", e);
			completoProcesoSMS.exception(e);
		} catch (HTTPException e) {
			Log.e(TAG, "Error de respuesta", e);
			completoProcesoSMS.exception(e);
		}
		return null;
	}
}
